3 research outputs found
A new parallelisation technique for heterogeneous CPUs
Parallelization has moved in recent years into the mainstream compilers, and the demand
for parallelizing tools that can do a better job of automatic parallelization is higher than
ever. During the last decade considerable attention has been focused on developing programming
tools that support both explicit and implicit parallelism to keep up with the
power of the new multiple core technology. Yet the success to develop automatic parallelising
compilers has been limited mainly due to the complexity of the analytic process
required to exploit available parallelism and manage other parallelisation measures such
as data partitioning, alignment and synchronization.
This dissertation investigates developing a programming tool that automatically parallelises
large data structures on a heterogeneous architecture and whether a high-level programming
language compiler can use this tool to exploit implicit parallelism and make use
of the performance potential of the modern multicore technology. The work involved the
development of a fully automatic parallelisation tool, called VSM, that completely hides
the underlying details of general purpose heterogeneous architectures. The VSM implementation
provides direct and simple access for users to parallelise array operations on the
Cell’s accelerators without the need for any annotations or process directives. This work
also involved the extension of the Glasgow Vector Pascal compiler to work with the VSM
implementation as a one compiler system. The developed compiler system, which is called
VP-Cell, takes a single source code and parallelises array expressions automatically.
Several experiments were conducted using Vector Pascal benchmarks to show the validity
of the VSM approach. The VP-Cell system achieved significant runtime performance
on one accelerator as compared to the master processor’s performance and near-linear
speedups over code runs on the Cell’s accelerators. Though VSM was mainly designed for
developing parallelising compilers it also showed a considerable performance by running
C code over the Cell’s accelerators
C++ software for computing and visualizing 2-D manifolds using Henderson's algorithm
Scientific Computing is an exciting and growing area that provides an important link between Computer Science and the Engineering and Physical Sciences. Today, computer graphics and geometric modeling are used routinely in science, engineering, business; and entertainment. In this thesis we develop object-oriented techniques and software for computing and visualizing implicitly defined manifolds ("surfaces") that arise a wide range of applications. The software differs from existing software for computing such manifolds in its software architecture. Furthermore, its algorithms are based on numerical continuation methods, rather than on subdivision techniques, which allows its practical application to the computation of two-dimensional manifolds in high-dimensional Euclidean spaces. The overall software provides a graphical user interface, algorithms for computing two-dimensional manifolds in higher-dimensional spaces, and graphics routines to visualize the manifolds